{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-admin-center-oauth",
      "artifactVersion": "2021.63.8",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.admin.center",
          "org.nuxeo.admin.center.analytics.dashboards",
          "org.nuxeo.admin.center.jsf",
          "org.nuxeo.admin.center.monitoring",
          "org.nuxeo.admin.center.oauth.opensocial"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.admin",
        "id": "grp:org.nuxeo.admin",
        "name": "org.nuxeo.admin",
        "parentIds": [
          "grp:org.nuxeo.ecm.platform"
        ],
        "readmes": [],
        "version": "2021.63"
      },
      "bundleId": "org.nuxeo.admin.center.oauth.opensocial",
      "components": [
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.actions.ActionService--actions",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.admin/org.nuxeo.admin.center.oauth.opensocial/org.nuxeo.connect.client.actions.oauth/Contributions/org.nuxeo.connect.client.actions.oauth--actions",
              "id": "org.nuxeo.connect.client.actions.oauth--actions",
              "registrationOrder": 3,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.actions.ActionService",
                "name": "org.nuxeo.ecm.platform.actions.ActionService",
                "type": "service"
              },
              "version": "2021.63.8",
              "xml": "<extension point=\"actions\" target=\"org.nuxeo.ecm.platform.actions.ActionService\">\n\n    <action id=\"OAuthOpensocial\" label=\"admcommand.OAuthOpensocial\" link=\"/view_admin-fragment.xhtml\" order=\"40\" type=\"admin_rest_document_link\">\n      <category>NUXEO_ADMIN</category>\n      <filter-id>only_for_manager</filter-id>\n    </action>\n\n    <action id=\"NuxeoServerKey\" label=\"tab.oauth.serverkey\" link=\"/incl/oauth/serverkey.xhtml\" order=\"10\" type=\"admin_rest_document_link\">\n      <category>OAuthOpensocial_sub_tab</category>\n      <filter-id>only_for_manager</filter-id>\n    </action>\n\n    <action id=\"ServiceProvides\" label=\"tab.oauth.providers\" link=\"/incl/oauth/providers.xhtml\" order=\"20\" type=\"admin_rest_document_link\">\n      <category>OAuthOpensocial_sub_tab</category>\n      <filter-id>only_for_manager</filter-id>\n    </action>\n\n    <action id=\"GrantedTokensToMe\" label=\"tab.oauth.grantedTokenSP\" link=\"/incl/oauth/providersTokens.xhtml\" order=\"25\" type=\"admin_rest_document_link\">\n      <category>OAuthOpensocial_sub_tab</category>\n      <filter-id>only_for_manager</filter-id>\n    </action>\n\n    <action id=\"Consumers\" label=\"tab.oauth.consumers\" link=\"/incl/oauth/consumers.xhtml\" order=\"30\" type=\"admin_rest_document_link\">\n      <category>OAuthOpensocial_sub_tab</category>\n      <filter-id>only_for_manager</filter-id>\n    </action>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.admin/org.nuxeo.admin.center.oauth.opensocial/org.nuxeo.connect.client.actions.oauth",
          "name": "org.nuxeo.connect.client.actions.oauth",
          "requirements": [
            "org.nuxeo.connect.client.actions"
          ],
          "resolutionOrder": 41,
          "services": [],
          "startOrder": 60,
          "version": "2021.63.8",
          "xmlFileContent": "<component name=\"org.nuxeo.connect.client.actions.oauth\">\n\n  <require>org.nuxeo.connect.client.actions</require>\n\n  <extension target=\"org.nuxeo.ecm.platform.actions.ActionService\"\n    point=\"actions\">\n\n    <action id=\"OAuthOpensocial\" link=\"/view_admin-fragment.xhtml\"\n      type=\"admin_rest_document_link\"\n      label=\"admcommand.OAuthOpensocial\" order=\"40\">\n      <category>NUXEO_ADMIN</category>\n      <filter-id>only_for_manager</filter-id>\n    </action>\n\n    <action id=\"NuxeoServerKey\" link=\"/incl/oauth/serverkey.xhtml\"\n      type=\"admin_rest_document_link\"\n      label=\"tab.oauth.serverkey\" order=\"10\">\n      <category>OAuthOpensocial_sub_tab</category>\n      <filter-id>only_for_manager</filter-id>\n    </action>\n\n    <action id=\"ServiceProvides\" link=\"/incl/oauth/providers.xhtml\"\n      type=\"admin_rest_document_link\"\n      label=\"tab.oauth.providers\" order=\"20\">\n      <category>OAuthOpensocial_sub_tab</category>\n      <filter-id>only_for_manager</filter-id>\n    </action>\n\n    <action id=\"GrantedTokensToMe\" link=\"/incl/oauth/providersTokens.xhtml\"\n      type=\"admin_rest_document_link\"\n      label=\"tab.oauth.grantedTokenSP\" order=\"25\">\n      <category>OAuthOpensocial_sub_tab</category>\n      <filter-id>only_for_manager</filter-id>\n    </action>\n\n    <action id=\"Consumers\" link=\"/incl/oauth/consumers.xhtml\"\n      type=\"admin_rest_document_link\"\n      label=\"tab.oauth.consumers\" order=\"30\">\n      <category>OAuthOpensocial_sub_tab</category>\n      <filter-id>only_for_manager</filter-id>\n    </action>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/actions-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager--layouts",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.admin/org.nuxeo.admin.center.oauth.opensocial/org.nuxeo.ecm.admin.oauth.directoryLayoutContrib/Contributions/org.nuxeo.ecm.admin.oauth.directoryLayoutContrib--layouts",
              "id": "org.nuxeo.ecm.admin.oauth.directoryLayoutContrib--layouts",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "name": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "type": "service"
              },
              "version": "2021.63.8",
              "xml": "<extension point=\"layouts\" target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\">\n\n    <layout name=\"oauth2ClientsLayoutAdmin\">\n      <templates>\n        <template mode=\"any\">\n          /directory/directoryOAuth_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>clientName</widget>\n        </row>\n        <row>\n          <widget>clientId</widget>\n        </row>\n        <row>\n          <widget>clientSecret</widget>\n        </row>\n        <row>\n          <widget>redirectURIs</widget>\n        </row>\n        <row>\n          <widget>autoGrant</widget>\n        </row>\n        <row>\n          <widget>enabled</widget>\n        </row>\n\n      </rows>\n\n      <widget name=\"clientName\" type=\"text\">\n        <labels>\n          <label mode=\"any\">label.oauth2.name</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauth2Client.name</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n            label.oauth2.help.name\n          </property>\n        </properties>\n        <properties widgetMode=\"edit\">\n          <property name=\"required\">true</property>\n        </properties>\n      </widget>\n      <widget name=\"clientId\" type=\"text\">\n        <labels>\n          <label mode=\"any\">label.oauth2.clientId</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauth2Client.clientId</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n            label.oauth2.help.clientId\n          </property>\n        </properties>\n        <properties widgetMode=\"edit\">\n          <property name=\"required\">true</property>\n          <property name=\"validator\">#{oauth2ClientsActions.validateClientId}</property>\n        </properties>\n      </widget>\n      <widget name=\"clientSecret\" type=\"text\">\n        <labels>\n          <label mode=\"any\">label.oauth2.clientSecret</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauth2Client.clientSecret</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n            label.oauth2.help.clientSecret\n          </property>\n        </properties>\n      </widget>\n      <widget name=\"redirectURIs\" type=\"text\">\n        <labels>\n          <label mode=\"any\">label.oauth2.redirectURIs</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauth2Client.redirectURIs</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n            label.oauth2.help.redirectURIs\n          </property>\n        </properties>\n        <properties widgetMode=\"edit\">\n          <property name=\"required\">true</property>\n          <property name=\"validator\">#{oauth2ClientsActions.validateRedirectURIs}</property>\n          <property name=\"placeholder\">#{messages['label.oauth2.redirectURIs.placeholder']}</property>\n        </properties>\n      </widget>\n      <widget name=\"autoGrant\" type=\"checkbox\">\n        <labels>\n          <label mode=\"any\">label.oauth2.autoGrant</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauth2Client.autoGrant</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n            label.oauth2.help.autoGrant\n          </property>\n        </properties>\n      </widget>\n      <widget name=\"enabled\" type=\"checkbox\">\n        <labels>\n          <label mode=\"any\">label.oauth2.enabled</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauth2Client.enabled</field>\n        </fields>\n      </widget>\n    </layout>\n\n    <layout name=\"oauthConsumerLayoutAdmin\">\n      <templates>\n        <template mode=\"any\">\n          /directory/directoryOAuth_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>consumerKey</widget>\n        </row>\n        <row>\n          <widget>consumerSecret</widget>\n        </row>\n        <row>\n          <widget>publicKey</widget>\n        </row>\n        <row>\n          <widget>description</widget>\n        </row>\n        <row>\n          <widget>signedFetchSupport</widget>\n          <widget>dedicatedLogin</widget>\n        </row>\n        <row>\n          <widget>callbackURL</widget>\n        </row>\n        <row>\n          <widget>allowBypassVerifier</widget>\n        </row>\n        <row>\n          <widget>enabled</widget>\n        </row>\n\n      </rows>\n\n      <widget name=\"consumerKey\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Consumer Key</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthConsumer.consumerKey</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.consumerKey\n          </property>\n        </properties>\n      </widget>\n      <widget name=\"consumerSecret\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Consumer Secret (HMAC Signature) </label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthConsumer.consumerSecret</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.consumerSecret\n          </property>\n        </properties>\n      </widget>\n      <widget name=\"publicKey\" type=\"textarea\">\n        <labels>\n          <label mode=\"any\">Consumer Public Key (RSA Signature) </label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthConsumer.publicKey</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.publicKey\n          </property>\n        </properties>\n      </widget>\n      <widget name=\"enabled\" type=\"checkbox\">\n        <labels>\n          <label mode=\"any\">Enabled</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthConsumer.enabled</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.enabled\n          </property>\n        </properties>\n      </widget>\n      <widget name=\"description\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Description</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthConsumer.description</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.description\n          </property>\n        </properties>\n      </widget>\n      <widget name=\"signedFetchSupport\" type=\"template\">\n        <labels>\n          <label mode=\"any\">Allow 2 legged auth</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthConsumer.signedFetchSupport</field>\n          <field>oauthConsumer.dedicatedLogin</field>\n        </fields>\n        <properties mode=\"any\">\n        <property name=\"template\">\n          /widgets/signedFetch_widget_template.xhtml\n        </property>\n        <property name=\"help\">\n        label.oauth.help.signedFetchSupport\n        </property>\n        </properties>\n      </widget>\n      <widget name=\"callbackURL\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Callback URL</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthConsumer.callbackURL</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.callbackURL\n          </property>\n        </properties>\n      </widget>\n      <widget name=\"allowBypassVerifier\" type=\"checkbox\">\n        <labels>\n          <label mode=\"any\">Allow OAuth verifier check bypass</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthConsumer.allowBypassVerifier</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.enabled\n          </property>\n        </properties>\n      </widget>\n\n    </layout>\n\n\n    <layout name=\"oauthServiceProviderLayoutAdmin\">\n      <templates>\n        <template mode=\"any\">\n          /directory/directoryOAuth_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>gadgetUrl</widget>\n        </row>\n        <row>\n          <widget>serviceName</widget>\n        </row>\n        <row>\n          <widget>consumerKey</widget>\n        </row>\n        <row>\n          <widget>consumerSecret</widget>\n        </row>\n        <!--<row>\n          <widget>publicKey</widget>\n        </row>-->\n        <row>\n          <widget>description</widget>\n        </row>\n        <row>\n          <widget>requestTokenURL</widget>\n        </row>\n        <row>\n          <widget>userAuthorizationURL</widget>\n        </row>\n        <row>\n          <widget>accessTokenURL</widget>\n        </row>\n        <row>\n          <widget>enabled</widget>\n        </row>\n      </rows>\n\n      <widget name=\"consumerKey\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Consumer Key</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthServiceProvider.consumerKey</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.consumerKey\n          </property>\n          <property name=\"size\">60</property>\n        </properties>\n      </widget>\n      <widget name=\"consumerSecret\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Consumer Secret (HMAC Signature) </label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthServiceProvider.consumerSecret</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.consumerSecret\n          </property>\n          <property name=\"size\">60</property>\n        </properties>\n      </widget>\n      <widget name=\"publicKey\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Consumer Public Key (RSA Signature) </label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthServiceProvider.publicKey</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.publicKey\n          </property>\n          <property name=\"size\">100</property>\n        </properties>\n      </widget>\n      <widget name=\"enabled\" type=\"checkbox\">\n        <labels>\n          <label mode=\"any\">Enabled</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthServiceProvider.enabled</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.enabled\n          </property>\n        </properties>\n      </widget>\n      <widget name=\"description\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Description</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthServiceProvider.description</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.description\n          </property>\n          <property name=\"size\">30</property>\n        </properties>\n      </widget>\n      <widget name=\"requestTokenURL\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Request Token URL</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthServiceProvider.requestTokenURL</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.requestTokenURL\n          </property>\n          <property name=\"size\">50</property>\n        </properties>\n      </widget>\n      <widget name=\"userAuthorizationURL\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Authorization URL</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthServiceProvider.userAuthorizationURL</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.userAuthorizationURL\n          </property>\n          <property name=\"size\">50</property>\n        </properties>\n      </widget>\n      <widget name=\"accessTokenURL\" type=\"text\">\n        <labels>\n          <label mode=\"any\">AccessToken URL</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthServiceProvider.accessTokenURL</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.accessTokenURL\n          </property>\n          <property name=\"size\">50</property>\n        </properties>\n      </widget>\n      <widget name=\"gadgetUrl\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Gadget URL</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthServiceProvider.gadgetUrl</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.gadgetUrl\n          </property>\n          <property name=\"size\">50</property>\n        </properties>\n      </widget>\n      <widget name=\"serviceName\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Service name</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthServiceProvider.serviceName</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.serviceName\n          </property>\n        </properties>\n      </widget>\n\n    </layout>\n\n<layout name=\"oauth2ServiceProviderLayoutAdmin\">\n      <templates>\n        <template mode=\"any\">\n          /directory/directoryOAuth_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>serviceName</widget>\n        </row>\n        <row>\n          <widget>description</widget>\n        </row>\n        <row>\n          <widget>clientId</widget>\n        </row>\n        <row>\n          <widget>clientSecret</widget>\n        </row>\n        <row>\n          <widget>authorizationServerURL</widget>\n        </row>\n        <row>\n          <widget>tokenServerURL</widget>\n        </row>\n        <row>\n          <widget>userAuthorizationURL</widget>\n        </row>\n        <row>\n          <widget>scopes</widget>\n        </row>\n        <row>\n          <widget>enabled</widget>\n        </row>\n      </rows>\n\n      <widget name=\"serviceName\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Service Name</label>\n        </labels>\n        <fields>\n          <field>oauth2ServiceProvider.serviceName</field>\n        </fields>\n      </widget>\n      <widget name=\"authorizationServerURL\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Authorization Server URL</label>\n        </labels>\n        <fields>\n          <field>oauth2ServiceProvider.authorizationServerURL</field>\n        </fields>\n        <properties mode=\"edit\">\n           <property name=\"size\">50</property>\n        </properties>\n        <widgetModes>\n          <mode value=\"view_list\">hidden</mode>\n          <mode value=\"view_list_and_header\">hidden</mode>\n        </widgetModes>\n      </widget>\n      <widget name=\"tokenServerURL\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Token Server URL</label>\n        </labels>\n        <fields>\n          <field>oauth2ServiceProvider.tokenServerURL</field>\n        </fields>\n        <properties mode=\"edit\">\n           <property name=\"size\">50</property>\n        </properties>\n        <widgetModes>\n          <mode value=\"view_list\">hidden</mode>\n          <mode value=\"view_list_and_header\">hidden</mode>\n        </widgetModes>\n      </widget>\n      <widget name=\"clientId\" type=\"text\">\n        <labels>\n          <label mode=\"any\">ClientID</label>\n        </labels>\n        <fields>\n          <field>oauth2ServiceProvider.clientId</field>\n        </fields>\n        <properties mode=\"edit\">\n           <property name=\"size\">40</property>\n        </properties>\n        <widgetModes>\n          <mode value=\"view_list\">hidden</mode>\n          <mode value=\"view_list_and_header\">hidden</mode>\n        </widgetModes>\n      </widget>\n      <widget name=\"userAuthorizationURL\" type=\"text\">\n        <labels>\n          <label mode=\"any\">User Authorization URL</label>\n        </labels>\n        <fields>\n          <field>oauth2ServiceProvider.userAuthorizationURL</field>\n        </fields>\n        <properties mode=\"edit\">\n           <property name=\"size\">50</property>\n        </properties>\n        <widgetModes>\n          <mode value=\"view_list\">hidden</mode>\n          <mode value=\"view_list_and_header\">hidden</mode>\n        </widgetModes>\n      </widget>\n      <widget name=\"clientSecret\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Client Secret</label>\n        </labels>\n        <fields>\n          <field>oauth2ServiceProvider.clientSecret</field>\n        </fields>\n        <properties mode=\"edit\">\n           <property name=\"size\">60</property>\n        </properties>\n        <widgetModes>\n          <mode value=\"view_list\">hidden</mode>\n          <mode value=\"view_list_and_header\">hidden</mode>\n        </widgetModes>\n      </widget>\n      <widget name=\"scopes\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Scopes</label>\n        </labels>\n        <fields>\n          <field>oauth2ServiceProvider.scopes</field>\n        </fields>\n        <widgetModes>\n          <mode value=\"view_list\">hidden</mode>\n          <mode value=\"view_list_and_header\">hidden</mode>\n        </widgetModes>\n      </widget>\n      <widget name=\"enabled\" type=\"checkbox\">\n        <labels>\n          <label mode=\"any\">Enabled</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauth2ServiceProvider.enabled</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.enabled\n          </property>\n        </properties>\n      </widget>\n      <widget name=\"description\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Description</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauth2ServiceProvider.description</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.description\n          </property>\n        </properties>\n      </widget>\n\n    </layout>\n\n    <layout name=\"externalGadgetLayoutAdmin\">\n      <templates>\n        <template mode=\"any\">\n          /directory/directoryOAuth_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>id</widget>\n        </row>\n        <row>\n          <widget>label</widget>\n        </row>\n        <row>\n          <widget>enabled</widget>\n        </row>\n        <row>\n          <widget>category</widget>\n        </row>\n        <row>\n          <widget>url</widget>\n        </row>\n      </rows>\n\n      <widget name=\"id\" type=\"text\">\n        <labels>\n          <label mode=\"any\">label.externalGadgetLayoutAdmin.name</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>externalgadget.id</field>\n        </fields>\n      </widget>\n      <widget name=\"label\" type=\"text\">\n        <labels>\n          <label mode=\"any\">label.externalGadgetLayoutAdmin.label</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>externalgadget.label</field>\n        </fields>\n      </widget>\n      <widget name=\"enabled\" type=\"template\">\n        <labels>\n          <label mode=\"any\">label.externalGadgetLayoutAdmin.enabled</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>externalgadget.enabled</field>\n        </fields>\n        <properties mode=\"any\">\n        <property name=\"template\">\n          /widgets/integer_yes_no_widget_template.xhtml\n        </property>\n      </properties>\n\n      </widget>\n      <widget name=\"category\" type=\"text\">\n        <labels>\n          <label mode=\"any\">label.externalGadgetLayoutAdmin.category</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>externalgadget.category</field>\n        </fields>\n      </widget>\n      <widget name=\"url\" type=\"text\">\n        <labels>\n          <label mode=\"any\">label.externalGadgetLayoutAdmin.gadgeturl</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>externalgadget.url</field>\n        </fields>\n      </widget>\n\n      <widget name=\"iconUrl\" type=\"text\">\n        <labels>\n          <label mode=\"any\">label.externalGadgetLayoutAdmin.iconurl</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>externalgadget.iconUrl</field>\n        </fields>\n      </widget>\n\n    </layout>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n  <layout name=\"oauthConsumerTokenLayoutAdmin\">\n      <templates>\n        <template mode=\"any\">\n          /directory/directoryOAuth_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>appId</widget>\n        </row>\n        <row>\n          <widget>consumerKey</widget>\n        </row>\n        <row>\n          <widget>token</widget>\n        </row>\n        <row>\n          <widget>tokenSecret</widget>\n        </row>\n        <row>\n          <widget>nuxeoLogin</widget>\n        </row>\n        <row>\n          <widget>creationDate</widget>\n        </row>\n        <row>\n          <widget>duration</widget>\n        </row>\n      </rows>\n\n      <widget name=\"consumerKey\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Consumer Key</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthToken.consumerKey</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.consumerKey\n          </property>\n        </properties>\n      </widget>\n\n      <widget name=\"appId\" type=\"text\">\n        <labels>\n          <label mode=\"any\">AppId (Gadget) </label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthToken.appId</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.appId\n          </property>\n        </properties>\n      </widget>\n\n      <widget name=\"token\" type=\"text\">\n        <labels>\n          <label mode=\"any\">OAUth Token </label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthToken.token</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.token\n          </property>\n        </properties>\n      </widget>\n\n      <widget name=\"tokenSecret\" type=\"text\">\n        <labels>\n          <label mode=\"any\">OAUth Token Secret</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthToken.tokenSecret</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.tokenSecret\n          </property>\n        </properties>\n      </widget>\n\n      <widget name=\"nuxeoLogin\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Nuxeo Login </label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthToken.nuxeoLogin</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.nuxeoLogin\n          </property>\n        </properties>\n      </widget>\n\n      <widget name=\"creationDate\" type=\"datetime\">\n        <labels>\n          <label mode=\"any\">Creation Date </label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthToken.creationDate</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.creationDate\n          </property>\n        </properties>\n      </widget>\n\n      <widget name=\"duration\" type=\"int\">\n        <labels>\n          <label mode=\"any\">Duration (in minutes)</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthToken.durationInMinutes</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.durationInMinutes\n          </property>\n        </properties>\n      </widget>\n\n    </layout>\n\n\n\n\n\n\n  <layout name=\"oauthProviderTokenLayoutAdmin\">\n      <templates>\n        <template mode=\"any\">\n          /directory/directoryOAuth_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>appId</widget>\n        </row>\n        <row>\n          <widget>consumerKey</widget>\n        </row>\n        <row>\n          <widget>token</widget>\n        </row>\n        <row>\n          <widget>tokenSecret</widget>\n        </row>\n        <row>\n          <widget>userId</widget>\n        </row>\n        <row>\n          <widget>creationDate</widget>\n        </row>\n        <!--<row>\n          <widget>duration</widget>\n        </row>-->\n      </rows>\n\n      <widget name=\"consumerKey\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Consumer Key</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthToken.consumerKey</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.consumerKey\n          </property>\n        </properties>\n      </widget>\n\n      <widget name=\"appId\" type=\"text\">\n        <labels>\n          <label mode=\"any\">AppId (Gadget) </label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthToken.appId</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.appId\n          </property>\n        </properties>\n      </widget>\n\n      <widget name=\"token\" type=\"text\">\n        <labels>\n          <label mode=\"any\">OAUth Token </label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthToken.token</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.token\n          </property>\n        </properties>\n      </widget>\n\n      <widget name=\"tokenSecret\" type=\"text\">\n        <labels>\n          <label mode=\"any\">OAUth Token Secret</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthToken.tokenSecret</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.tokenSecret\n          </property>\n        </properties>\n        <widgetModes>\n           <mode value=\"list\">hidden</mode>\n        </widgetModes>\n      </widget>\n\n      <widget name=\"userId\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Nuxeo Login </label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthToken.clientId</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.nuxeoLogin\n          </property>\n        </properties>\n      </widget>\n\n      <widget name=\"creationDate\" type=\"datetime\">\n        <labels>\n          <label mode=\"any\">Creation Date </label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthToken.creationDate</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.creationDate\n          </property>\n        </properties>\n      </widget>\n\n      <widget name=\"duration\" type=\"int\">\n        <labels>\n          <label mode=\"any\">Duration (in minutes)</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthToken.durationInMinutes</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.durationInMinutes\n          </property>\n        </properties>\n      </widget>\n\n    </layout>\n\n\n  <layout name=\"oauth2ProviderTokenLayoutAdmin\">\n      <templates>\n        <template mode=\"any\">\n          /directory/directoryOAuth_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>id</widget>\n        </row>\n        <row>\n          <widget>serviceName</widget>\n        </row>\n        <row>\n          <widget>nuxeoLogin</widget>\n        </row>\n        <row>\n          <widget>serviceLogin</widget>\n        </row>\n        <row>\n          <widget>creationDate</widget>\n        </row>\n        <row>\n          <widget>isShared</widget>\n        </row>\n        <row>\n          <widget>sharedWith</widget>\n        </row>\n      </rows>\n\n      <widget name=\"id\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Id</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauth2Token.id</field>\n        </fields>\n        <widgetModes>\n          <mode value=\"edit\">hidden</mode>\n        </widgetModes>\n      </widget>\n      <widget name=\"serviceName\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Service Name</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauth2Token.serviceName</field>\n        </fields>\n      </widget>\n      <widget name=\"nuxeoLogin\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Nuxeo Login</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauth2Token.nuxeoLogin</field>\n        </fields>\n      </widget>\n      <widget name=\"serviceLogin\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Service Login</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauth2Token.serviceLogin</field>\n        </fields>\n      </widget>\n      <widget name=\"creationDate\" type=\"datetime\">\n        <labels>\n          <label mode=\"any\">Creation Date</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauth2Token.creationDate</field>\n        </fields>\n      </widget>\n      <widget name=\"isShared\" type=\"checkbox\">\n        <labels>\n          <label mode=\"any\">Shared Token</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauth2Token.isShared</field>\n        </fields>\n      </widget>\n      <widget name=\"sharedWith\" type=\"multipleUsersSuggestion\">\n        <labels>\n          <label mode=\"any\">User/Groups allowed</label>\n        </labels>\n        <fields>\n          <field>#{oauth2ProvidersTokensActions.sharedWith}</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"prefixed\">true</property>\n          <property name=\"minChars\">3</property>\n          <property name=\"hideHelpLabel\">false</property>\n        </properties>\n        <widgetModes>\n          <mode value=\"view_list\">hidden</mode>\n          <mode value=\"view_list_and_header\">hidden</mode>\n        </widgetModes>\n      </widget>\n\n    </layout>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.admin/org.nuxeo.admin.center.oauth.opensocial/org.nuxeo.ecm.admin.oauth.directoryLayoutContrib",
          "name": "org.nuxeo.ecm.admin.oauth.directoryLayoutContrib",
          "requirements": [],
          "resolutionOrder": 42,
          "services": [],
          "startOrder": 84,
          "version": "2021.63.8",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.admin.oauth.directoryLayoutContrib\">\n\n  <extension target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\"\n    point=\"layouts\">\n\n    <layout name=\"oauth2ClientsLayoutAdmin\">\n      <templates>\n        <template mode=\"any\">\n          /directory/directoryOAuth_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>clientName</widget>\n        </row>\n        <row>\n          <widget>clientId</widget>\n        </row>\n        <row>\n          <widget>clientSecret</widget>\n        </row>\n        <row>\n          <widget>redirectURIs</widget>\n        </row>\n        <row>\n          <widget>autoGrant</widget>\n        </row>\n        <row>\n          <widget>enabled</widget>\n        </row>\n\n      </rows>\n\n      <widget name=\"clientName\" type=\"text\">\n        <labels>\n          <label mode=\"any\">label.oauth2.name</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauth2Client.name</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n            label.oauth2.help.name\n          </property>\n        </properties>\n        <properties widgetMode=\"edit\">\n          <property name=\"required\">true</property>\n        </properties>\n      </widget>\n      <widget name=\"clientId\" type=\"text\">\n        <labels>\n          <label mode=\"any\">label.oauth2.clientId</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauth2Client.clientId</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n            label.oauth2.help.clientId\n          </property>\n        </properties>\n        <properties widgetMode=\"edit\">\n          <property name=\"required\">true</property>\n          <property name=\"validator\">#{oauth2ClientsActions.validateClientId}</property>\n        </properties>\n      </widget>\n      <widget name=\"clientSecret\" type=\"text\">\n        <labels>\n          <label mode=\"any\">label.oauth2.clientSecret</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauth2Client.clientSecret</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n            label.oauth2.help.clientSecret\n          </property>\n        </properties>\n      </widget>\n      <widget name=\"redirectURIs\" type=\"text\">\n        <labels>\n          <label mode=\"any\">label.oauth2.redirectURIs</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauth2Client.redirectURIs</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n            label.oauth2.help.redirectURIs\n          </property>\n        </properties>\n        <properties widgetMode=\"edit\">\n          <property name=\"required\">true</property>\n          <property name=\"validator\">#{oauth2ClientsActions.validateRedirectURIs}</property>\n          <property name=\"placeholder\">#{messages['label.oauth2.redirectURIs.placeholder']}</property>\n        </properties>\n      </widget>\n      <widget name=\"autoGrant\" type=\"checkbox\">\n        <labels>\n          <label mode=\"any\">label.oauth2.autoGrant</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauth2Client.autoGrant</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n            label.oauth2.help.autoGrant\n          </property>\n        </properties>\n      </widget>\n      <widget name=\"enabled\" type=\"checkbox\">\n        <labels>\n          <label mode=\"any\">label.oauth2.enabled</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauth2Client.enabled</field>\n        </fields>\n      </widget>\n    </layout>\n\n    <layout name=\"oauthConsumerLayoutAdmin\">\n      <templates>\n        <template mode=\"any\">\n          /directory/directoryOAuth_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>consumerKey</widget>\n        </row>\n        <row>\n          <widget>consumerSecret</widget>\n        </row>\n        <row>\n          <widget>publicKey</widget>\n        </row>\n        <row>\n          <widget>description</widget>\n        </row>\n        <row>\n          <widget>signedFetchSupport</widget>\n          <widget>dedicatedLogin</widget>\n        </row>\n        <row>\n          <widget>callbackURL</widget>\n        </row>\n        <row>\n          <widget>allowBypassVerifier</widget>\n        </row>\n        <row>\n          <widget>enabled</widget>\n        </row>\n\n      </rows>\n\n      <widget name=\"consumerKey\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Consumer Key</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthConsumer.consumerKey</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.consumerKey\n          </property>\n        </properties>\n      </widget>\n      <widget name=\"consumerSecret\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Consumer Secret (HMAC Signature) </label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthConsumer.consumerSecret</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.consumerSecret\n          </property>\n        </properties>\n      </widget>\n      <widget name=\"publicKey\" type=\"textarea\">\n        <labels>\n          <label mode=\"any\">Consumer Public Key (RSA Signature) </label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthConsumer.publicKey</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.publicKey\n          </property>\n        </properties>\n      </widget>\n      <widget name=\"enabled\" type=\"checkbox\">\n        <labels>\n          <label mode=\"any\">Enabled</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthConsumer.enabled</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.enabled\n          </property>\n        </properties>\n      </widget>\n      <widget name=\"description\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Description</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthConsumer.description</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.description\n          </property>\n        </properties>\n      </widget>\n      <widget name=\"signedFetchSupport\" type=\"template\">\n        <labels>\n          <label mode=\"any\">Allow 2 legged auth</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthConsumer.signedFetchSupport</field>\n          <field>oauthConsumer.dedicatedLogin</field>\n        </fields>\n        <properties mode=\"any\">\n        <property name=\"template\">\n          /widgets/signedFetch_widget_template.xhtml\n        </property>\n        <property name=\"help\">\n        label.oauth.help.signedFetchSupport\n        </property>\n        </properties>\n      </widget>\n      <widget name=\"callbackURL\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Callback URL</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthConsumer.callbackURL</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.callbackURL\n          </property>\n        </properties>\n      </widget>\n      <widget name=\"allowBypassVerifier\" type=\"checkbox\">\n        <labels>\n          <label mode=\"any\">Allow OAuth verifier check bypass</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthConsumer.allowBypassVerifier</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.enabled\n          </property>\n        </properties>\n      </widget>\n\n    </layout>\n\n\n    <layout name=\"oauthServiceProviderLayoutAdmin\">\n      <templates>\n        <template mode=\"any\">\n          /directory/directoryOAuth_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>gadgetUrl</widget>\n        </row>\n        <row>\n          <widget>serviceName</widget>\n        </row>\n        <row>\n          <widget>consumerKey</widget>\n        </row>\n        <row>\n          <widget>consumerSecret</widget>\n        </row>\n        <!--<row>\n          <widget>publicKey</widget>\n        </row>-->\n        <row>\n          <widget>description</widget>\n        </row>\n        <row>\n          <widget>requestTokenURL</widget>\n        </row>\n        <row>\n          <widget>userAuthorizationURL</widget>\n        </row>\n        <row>\n          <widget>accessTokenURL</widget>\n        </row>\n        <row>\n          <widget>enabled</widget>\n        </row>\n      </rows>\n\n      <widget name=\"consumerKey\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Consumer Key</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthServiceProvider.consumerKey</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.consumerKey\n          </property>\n          <property name=\"size\">60</property>\n        </properties>\n      </widget>\n      <widget name=\"consumerSecret\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Consumer Secret (HMAC Signature) </label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthServiceProvider.consumerSecret</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.consumerSecret\n          </property>\n          <property name=\"size\">60</property>\n        </properties>\n      </widget>\n      <widget name=\"publicKey\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Consumer Public Key (RSA Signature) </label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthServiceProvider.publicKey</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.publicKey\n          </property>\n          <property name=\"size\">100</property>\n        </properties>\n      </widget>\n      <widget name=\"enabled\" type=\"checkbox\">\n        <labels>\n          <label mode=\"any\">Enabled</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthServiceProvider.enabled</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.enabled\n          </property>\n        </properties>\n      </widget>\n      <widget name=\"description\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Description</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthServiceProvider.description</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.description\n          </property>\n          <property name=\"size\">30</property>\n        </properties>\n      </widget>\n      <widget name=\"requestTokenURL\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Request Token URL</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthServiceProvider.requestTokenURL</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.requestTokenURL\n          </property>\n          <property name=\"size\">50</property>\n        </properties>\n      </widget>\n      <widget name=\"userAuthorizationURL\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Authorization URL</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthServiceProvider.userAuthorizationURL</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.userAuthorizationURL\n          </property>\n          <property name=\"size\">50</property>\n        </properties>\n      </widget>\n      <widget name=\"accessTokenURL\" type=\"text\">\n        <labels>\n          <label mode=\"any\">AccessToken URL</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthServiceProvider.accessTokenURL</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.accessTokenURL\n          </property>\n          <property name=\"size\">50</property>\n        </properties>\n      </widget>\n      <widget name=\"gadgetUrl\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Gadget URL</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthServiceProvider.gadgetUrl</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.gadgetUrl\n          </property>\n          <property name=\"size\">50</property>\n        </properties>\n      </widget>\n      <widget name=\"serviceName\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Service name</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthServiceProvider.serviceName</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.serviceName\n          </property>\n        </properties>\n      </widget>\n\n    </layout>\n\n<layout name=\"oauth2ServiceProviderLayoutAdmin\">\n      <templates>\n        <template mode=\"any\">\n          /directory/directoryOAuth_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>serviceName</widget>\n        </row>\n        <row>\n          <widget>description</widget>\n        </row>\n        <row>\n          <widget>clientId</widget>\n        </row>\n        <row>\n          <widget>clientSecret</widget>\n        </row>\n        <row>\n          <widget>authorizationServerURL</widget>\n        </row>\n        <row>\n          <widget>tokenServerURL</widget>\n        </row>\n        <row>\n          <widget>userAuthorizationURL</widget>\n        </row>\n        <row>\n          <widget>scopes</widget>\n        </row>\n        <row>\n          <widget>enabled</widget>\n        </row>\n      </rows>\n\n      <widget name=\"serviceName\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Service Name</label>\n        </labels>\n        <fields>\n          <field>oauth2ServiceProvider.serviceName</field>\n        </fields>\n      </widget>\n      <widget name=\"authorizationServerURL\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Authorization Server URL</label>\n        </labels>\n        <fields>\n          <field>oauth2ServiceProvider.authorizationServerURL</field>\n        </fields>\n        <properties mode=\"edit\">\n           <property name=\"size\">50</property>\n        </properties>\n        <widgetModes>\n          <mode value=\"view_list\">hidden</mode>\n          <mode value=\"view_list_and_header\">hidden</mode>\n        </widgetModes>\n      </widget>\n      <widget name=\"tokenServerURL\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Token Server URL</label>\n        </labels>\n        <fields>\n          <field>oauth2ServiceProvider.tokenServerURL</field>\n        </fields>\n        <properties mode=\"edit\">\n           <property name=\"size\">50</property>\n        </properties>\n        <widgetModes>\n          <mode value=\"view_list\">hidden</mode>\n          <mode value=\"view_list_and_header\">hidden</mode>\n        </widgetModes>\n      </widget>\n      <widget name=\"clientId\" type=\"text\">\n        <labels>\n          <label mode=\"any\">ClientID</label>\n        </labels>\n        <fields>\n          <field>oauth2ServiceProvider.clientId</field>\n        </fields>\n        <properties mode=\"edit\">\n           <property name=\"size\">40</property>\n        </properties>\n        <widgetModes>\n          <mode value=\"view_list\">hidden</mode>\n          <mode value=\"view_list_and_header\">hidden</mode>\n        </widgetModes>\n      </widget>\n      <widget name=\"userAuthorizationURL\" type=\"text\">\n        <labels>\n          <label mode=\"any\">User Authorization URL</label>\n        </labels>\n        <fields>\n          <field>oauth2ServiceProvider.userAuthorizationURL</field>\n        </fields>\n        <properties mode=\"edit\">\n           <property name=\"size\">50</property>\n        </properties>\n        <widgetModes>\n          <mode value=\"view_list\">hidden</mode>\n          <mode value=\"view_list_and_header\">hidden</mode>\n        </widgetModes>\n      </widget>\n      <widget name=\"clientSecret\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Client Secret</label>\n        </labels>\n        <fields>\n          <field>oauth2ServiceProvider.clientSecret</field>\n        </fields>\n        <properties mode=\"edit\">\n           <property name=\"size\">60</property>\n        </properties>\n        <widgetModes>\n          <mode value=\"view_list\">hidden</mode>\n          <mode value=\"view_list_and_header\">hidden</mode>\n        </widgetModes>\n      </widget>\n      <widget name=\"scopes\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Scopes</label>\n        </labels>\n        <fields>\n          <field>oauth2ServiceProvider.scopes</field>\n        </fields>\n        <widgetModes>\n          <mode value=\"view_list\">hidden</mode>\n          <mode value=\"view_list_and_header\">hidden</mode>\n        </widgetModes>\n      </widget>\n      <widget name=\"enabled\" type=\"checkbox\">\n        <labels>\n          <label mode=\"any\">Enabled</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauth2ServiceProvider.enabled</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.enabled\n          </property>\n        </properties>\n      </widget>\n      <widget name=\"description\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Description</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauth2ServiceProvider.description</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.description\n          </property>\n        </properties>\n      </widget>\n\n    </layout>\n\n    <layout name=\"externalGadgetLayoutAdmin\">\n      <templates>\n        <template mode=\"any\">\n          /directory/directoryOAuth_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>id</widget>\n        </row>\n        <row>\n          <widget>label</widget>\n        </row>\n        <row>\n          <widget>enabled</widget>\n        </row>\n        <row>\n          <widget>category</widget>\n        </row>\n        <row>\n          <widget>url</widget>\n        </row>\n      </rows>\n\n      <widget name=\"id\" type=\"text\">\n        <labels>\n          <label mode=\"any\">label.externalGadgetLayoutAdmin.name</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>externalgadget.id</field>\n        </fields>\n      </widget>\n      <widget name=\"label\" type=\"text\">\n        <labels>\n          <label mode=\"any\">label.externalGadgetLayoutAdmin.label</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>externalgadget.label</field>\n        </fields>\n      </widget>\n      <widget name=\"enabled\" type=\"template\">\n        <labels>\n          <label mode=\"any\">label.externalGadgetLayoutAdmin.enabled</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>externalgadget.enabled</field>\n        </fields>\n        <properties mode=\"any\">\n        <property name=\"template\">\n          /widgets/integer_yes_no_widget_template.xhtml\n        </property>\n      </properties>\n\n      </widget>\n      <widget name=\"category\" type=\"text\">\n        <labels>\n          <label mode=\"any\">label.externalGadgetLayoutAdmin.category</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>externalgadget.category</field>\n        </fields>\n      </widget>\n      <widget name=\"url\" type=\"text\">\n        <labels>\n          <label mode=\"any\">label.externalGadgetLayoutAdmin.gadgeturl</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>externalgadget.url</field>\n        </fields>\n      </widget>\n\n      <widget name=\"iconUrl\" type=\"text\">\n        <labels>\n          <label mode=\"any\">label.externalGadgetLayoutAdmin.iconurl</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>externalgadget.iconUrl</field>\n        </fields>\n      </widget>\n\n    </layout>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n  <layout name=\"oauthConsumerTokenLayoutAdmin\">\n      <templates>\n        <template mode=\"any\">\n          /directory/directoryOAuth_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>appId</widget>\n        </row>\n        <row>\n          <widget>consumerKey</widget>\n        </row>\n        <row>\n          <widget>token</widget>\n        </row>\n        <row>\n          <widget>tokenSecret</widget>\n        </row>\n        <row>\n          <widget>nuxeoLogin</widget>\n        </row>\n        <row>\n          <widget>creationDate</widget>\n        </row>\n        <row>\n          <widget>duration</widget>\n        </row>\n      </rows>\n\n      <widget name=\"consumerKey\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Consumer Key</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthToken.consumerKey</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.consumerKey\n          </property>\n        </properties>\n      </widget>\n\n      <widget name=\"appId\" type=\"text\">\n        <labels>\n          <label mode=\"any\">AppId (Gadget) </label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthToken.appId</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.appId\n          </property>\n        </properties>\n      </widget>\n\n      <widget name=\"token\" type=\"text\">\n        <labels>\n          <label mode=\"any\">OAUth Token </label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthToken.token</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.token\n          </property>\n        </properties>\n      </widget>\n\n      <widget name=\"tokenSecret\" type=\"text\">\n        <labels>\n          <label mode=\"any\">OAUth Token Secret</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthToken.tokenSecret</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.tokenSecret\n          </property>\n        </properties>\n      </widget>\n\n      <widget name=\"nuxeoLogin\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Nuxeo Login </label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthToken.nuxeoLogin</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.nuxeoLogin\n          </property>\n        </properties>\n      </widget>\n\n      <widget name=\"creationDate\" type=\"datetime\">\n        <labels>\n          <label mode=\"any\">Creation Date </label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthToken.creationDate</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.creationDate\n          </property>\n        </properties>\n      </widget>\n\n      <widget name=\"duration\" type=\"int\">\n        <labels>\n          <label mode=\"any\">Duration (in minutes)</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthToken.durationInMinutes</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.durationInMinutes\n          </property>\n        </properties>\n      </widget>\n\n    </layout>\n\n\n\n\n\n\n  <layout name=\"oauthProviderTokenLayoutAdmin\">\n      <templates>\n        <template mode=\"any\">\n          /directory/directoryOAuth_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>appId</widget>\n        </row>\n        <row>\n          <widget>consumerKey</widget>\n        </row>\n        <row>\n          <widget>token</widget>\n        </row>\n        <row>\n          <widget>tokenSecret</widget>\n        </row>\n        <row>\n          <widget>userId</widget>\n        </row>\n        <row>\n          <widget>creationDate</widget>\n        </row>\n        <!--<row>\n          <widget>duration</widget>\n        </row>-->\n      </rows>\n\n      <widget name=\"consumerKey\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Consumer Key</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthToken.consumerKey</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.consumerKey\n          </property>\n        </properties>\n      </widget>\n\n      <widget name=\"appId\" type=\"text\">\n        <labels>\n          <label mode=\"any\">AppId (Gadget) </label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthToken.appId</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.appId\n          </property>\n        </properties>\n      </widget>\n\n      <widget name=\"token\" type=\"text\">\n        <labels>\n          <label mode=\"any\">OAUth Token </label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthToken.token</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.token\n          </property>\n        </properties>\n      </widget>\n\n      <widget name=\"tokenSecret\" type=\"text\">\n        <labels>\n          <label mode=\"any\">OAUth Token Secret</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthToken.tokenSecret</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.tokenSecret\n          </property>\n        </properties>\n        <widgetModes>\n           <mode value=\"list\">hidden</mode>\n        </widgetModes>\n      </widget>\n\n      <widget name=\"userId\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Nuxeo Login </label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthToken.clientId</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.nuxeoLogin\n          </property>\n        </properties>\n      </widget>\n\n      <widget name=\"creationDate\" type=\"datetime\">\n        <labels>\n          <label mode=\"any\">Creation Date </label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthToken.creationDate</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.creationDate\n          </property>\n        </properties>\n      </widget>\n\n      <widget name=\"duration\" type=\"int\">\n        <labels>\n          <label mode=\"any\">Duration (in minutes)</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauthToken.durationInMinutes</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"help\">\n          label.oauth.help.durationInMinutes\n          </property>\n        </properties>\n      </widget>\n\n    </layout>\n\n\n  <layout name=\"oauth2ProviderTokenLayoutAdmin\">\n      <templates>\n        <template mode=\"any\">\n          /directory/directoryOAuth_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>id</widget>\n        </row>\n        <row>\n          <widget>serviceName</widget>\n        </row>\n        <row>\n          <widget>nuxeoLogin</widget>\n        </row>\n        <row>\n          <widget>serviceLogin</widget>\n        </row>\n        <row>\n          <widget>creationDate</widget>\n        </row>\n        <row>\n          <widget>isShared</widget>\n        </row>\n        <row>\n          <widget>sharedWith</widget>\n        </row>\n      </rows>\n\n      <widget name=\"id\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Id</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauth2Token.id</field>\n        </fields>\n        <widgetModes>\n          <mode value=\"edit\">hidden</mode>\n        </widgetModes>\n      </widget>\n      <widget name=\"serviceName\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Service Name</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauth2Token.serviceName</field>\n        </fields>\n      </widget>\n      <widget name=\"nuxeoLogin\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Nuxeo Login</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauth2Token.nuxeoLogin</field>\n        </fields>\n      </widget>\n      <widget name=\"serviceLogin\" type=\"text\">\n        <labels>\n          <label mode=\"any\">Service Login</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauth2Token.serviceLogin</field>\n        </fields>\n      </widget>\n      <widget name=\"creationDate\" type=\"datetime\">\n        <labels>\n          <label mode=\"any\">Creation Date</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauth2Token.creationDate</field>\n        </fields>\n      </widget>\n      <widget name=\"isShared\" type=\"checkbox\">\n        <labels>\n          <label mode=\"any\">Shared Token</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>oauth2Token.isShared</field>\n        </fields>\n      </widget>\n      <widget name=\"sharedWith\" type=\"multipleUsersSuggestion\">\n        <labels>\n          <label mode=\"any\">User/Groups allowed</label>\n        </labels>\n        <fields>\n          <field>#{oauth2ProvidersTokensActions.sharedWith}</field>\n        </fields>\n        <properties widgetMode=\"edit\">\n          <property name=\"prefixed\">true</property>\n          <property name=\"minChars\">3</property>\n          <property name=\"hideHelpLabel\">false</property>\n        </properties>\n        <widgetModes>\n          <mode value=\"view_list\">hidden</mode>\n          <mode value=\"view_list_and_header\">hidden</mode>\n        </widgetModes>\n      </widget>\n\n    </layout>\n\n  </extension>\n\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/directory-layout-contrib.xml",
          "xmlPureComponent": true
        }
      ],
      "fileName": "nuxeo-admin-center-oauth-2021.63.8.jar",
      "groupId": "org.nuxeo.ecm.platform",
      "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.admin/org.nuxeo.admin.center.oauth.opensocial",
      "id": "org.nuxeo.admin.center.oauth.opensocial",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: Apache Maven\r\nBuilt-By: root\r\nBuild-Jdk: 11.0.24\r\nBundle-ManifestVersion: 1\r\nBundle-Version: 0.0.1\r\nBundle-Name: Nuxeo Admin Center OAuth/Opensocial\r\nBundle-SymbolicName: org.nuxeo.admin.center.oauth.opensocial;singleton\r\n :=true\r\nBundle-Vendor: Nuxeo\r\nNuxeo-Component: OSGI-INF/actions-contrib.xml,OSGI-INF/directory-layou\r\n t-contrib.xml\r\n\r\n",
      "maxResolutionOrder": 42,
      "minResolutionOrder": 41,
      "packages": [
        "nuxeo-jsf-ui"
      ],
      "requirements": [],
      "version": "2021.63.8"
    }
  ],
  "creationDate": 1732721792848,
  "key": "Nuxeo Platform-2021.63",
  "name": "Nuxeo Platform",
  "operations": [],
  "packages": [
    {
      "@type": "NXPackage",
      "bundles": [
        "org.nuxeo.admin.center.analytics.dashboards",
        "org.nuxeo.admin.center.jsf",
        "org.nuxeo.admin.center.monitoring",
        "org.nuxeo.admin.center.oauth.opensocial",
        "org.nuxeo.ecm.automation.jsf",
        "org.nuxeo.elasticsearch.web",
        "org.nuxeo.ecm.localconf.web",
        "org.nuxeo.ecm.actions.jsf",
        "org.nuxeo.ecm.platform.audio.jsf",
        "org.nuxeo.ecm.platform.audit.web",
        "org.nuxeo.ecm.platform.comment.web",
        "org.nuxeo.ecm.platform.contentview.jsf",
        "org.nuxeo.ecm.directory.web",
        "org.nuxeo.ecm.platform.forms.layout.client",
        "org.nuxeo.ecm.platform.forms.layout.io",
        "org.nuxeo.ecm.platform.forms.layout.io.plugins",
        "org.nuxeo.ecm.platform.picture.jsf",
        "org.nuxeo.ecm.platform.io.web",
        "org.nuxeo.ecm.platform.login.token.jsf",
        "org.nuxeo.ecm.platform.notification.web",
        "org.nuxeo.ecm.platform.publisher.web",
        "org.nuxeo.ecm.relations.web",
        "org.nuxeo.ecm.platform.rendition.web",
        "org.nuxeo.ecm.platform.suggestbox.jsf",
        "org.nuxeo.ecm.platform.tag.web",
        "org.nuxeo.ecm.platform.task.web",
        "org.nuxeo.ecm.platform.ui.select2",
        "org.nuxeo.ecm.platform.ui",
        "org.nuxeo.ecm.platform.userworkspace.web",
        "org.nuxeo.ecm.platform.video.jsf",
        "org.nuxeo.ecm.webapp.ui",
        "org.nuxeo.ecm.webapp.base",
        "org.nuxeo.ecm.webapp.core",
        "org.nuxeo.ecm.platform.preview.jsf",
        "org.nuxeo.ecm.platform.routing.dashboard",
        "org.nuxeo.ecm.platform.routing.default.jsf",
        "org.nuxeo.ecm.platform.routing.dm",
        "org.nuxeo.ecm.platform.routing.web",
        "org.nuxeo.search.ui",
        "org.nuxeo.theme.migration",
        "org.nuxeo.ecm.user.center",
        "org.nuxeo.ecm.user.center.dashboard",
        "org.nuxeo.ecm.user.center.dashboard.jsf",
        "org.nuxeo.ecm.user.center.notification",
        "org.nuxeo.ecm.user.center.oauth",
        "org.nuxeo.ecm.user.center.profile.jsf",
        "org.nuxeo.web.resources.jsf"
      ],
      "conflicts": [],
      "dependencies": [],
      "hierarchyPath": "/nuxeo-jsf-ui-2021.63.8",
      "id": "nuxeo-jsf-ui-2021.63.8",
      "name": "nuxeo-jsf-ui",
      "optionalDependencies": [],
      "packageType": "addon",
      "title": "Nuxeo JSF UI",
      "version": "2021.63.8"
    }
  ],
  "pluginSnapshots": {},
  "releaseDate": 1732721792848,
  "version": "2021.63"
}